<%-- 
    Document   : CON_VISTA_ESTADO_CUENTAS
    Created on : 11-nov-2014, 9:19:34
    Author     : equipo_2
--%>

<%@page import="java.util.List"%>
<%@page import="CONTABILIDAD_MODELO.CON_NOMBRE_NIVEL_CUENTA"%>
<%@page import="Conexion.Conexion"%>
<%@page import="RRHH_Modelo.RHH_USUARIO"%>
<%@page import="CONTABILIDAD_MODELO.CON_FECHA_CIERRE"%>
<%@page import="java.text.DateFormat"%>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>BROKER</title>
        <link href="../css/NuevoStilo.css" rel="stylesheet" type="text/css"/>
        <script src="../login/js/jquery-1.8.2.min.js" type="text/javascript"></script>
        <script src="../js/jquery-ui.js" type="text/javascript"></script>
        <script src="../js/jquery.ui.touch-punch.js" type="text/javascript"></script>
        <script src="../js/jspdf.min.js" type="text/javascript"></script>
    </head>
    <div id="CuerpoFormulario">
        <%
            RHH_USUARIO usuario = ((RHH_USUARIO)request.getSession().getAttribute("usr"));
            Conexion con = new Conexion(usuario.getUSUARIO(), usuario.getPASSWORD());      
            CON_FECHA_CIERRE fecha = new CON_FECHA_CIERRE();
            fecha.setCon(con); 

            int mes=fecha.mesActual();
            int ano=fecha.anoActual();
        %>
        <h1 id="tituloFormulario">BALANCE GENERAL</h1>
        <div id="contenedorBuscadorEstrella">
            <div style="margin-top: -58px;position: fixed;">
                <span class="negrillaenter" id="tituloBusqueda">Periodo</span>
                <input id="año" type="text" placeholder="AÑO" class="chico">
                <select id="mes">
                    <option value="1">ENERO</option>
                    <option value="2">FEBRERO</option>
                    <option value="3">MARZO</option>
                    <option value="4">ABRIL</option>
                    <option value="5">MAYO</option>
                    <option value="6">JUNIO</option>
                    <option value="7">JULIO</option>
                    <option value="8">AGOSTO</option>
                    <option value="9">SEPTIEMBRE</option>
                    <option value="10">OCTUBRE</option>
                    <option value="11">NOVIEMBRE</option>
                    <option value="12">DICIEMBRE</option>
                </select>
                <input id="datepiker" type="text" style="display: none;" placeholder="DE" class="mediano">
            </div>
            <div style="margin-top: -58px;position: relative; float: right;">
                <span class="negrillaenter" id="tituloBusqueda2">Periodo 2</span>
                <input id="año2" type="text" placeholder="AÑO" class="chico">
                <select id="mes2">
                    <option value="1">ENERO</option>
                    <option value="2">FEBRERO</option>
                    <option value="3">MARZO</option>
                    <option value="4">ABRIL</option>
                    <option value="5">MAYO</option>
                    <option value="6">JUNIO</option>
                    <option value="7">JULIO</option>
                    <option value="8">AGOSTO</option>
                    <option value="9">SEPTIEMBRE</option>
                    <option value="10">OCTUBRE</option>
                    <option value="11">NOVIEMBRE</option>
                    <option value="12">DICIEMBRE</option>
                </select>
                <input id="datepiker2" type="text" style="display: none;" placeholder="HASTA" class="mediano">

            </div>
        </div>
        <div id="buscadores" style="background: white; padding: 5px;">
            <input type="text" name="busqueda" class="grande"  placeholder="Buscador" name="buscar" style="margin-bottom: 0; background: none; color:black;">
            NIVEL:
            <select id="nivel" style="background: none; border: thin solid gray; border-radius: 0;">
            <%
                CON_NOMBRE_NIVEL_CUENTA cuenta=new CON_NOMBRE_NIVEL_CUENTA();
                cuenta.setCon(con);
                List<CON_NOMBRE_NIVEL_CUENTA> lista=cuenta.Todos();
                for (int i = 0; i < lista.size(); i++) {
                    out.print("<option  style='margin-left: 10px;' value='"+(int)lista.get(i).getID()+"'>"+(int)lista.get(i).getID()+" - "+lista.get(i).getDESCRIPCION()+"</option>");
                }
            %>
            </select>
            <select id="categoria" style="background: none; border: thin solid gray; border-radius: 0;">
                
                
            </select>
            <button onclick="ocultarNivel(this)">OCULTAR</button>

        </div>
        <div id="tabs2" style="overflow: auto; background: none repeat scroll 0 0 white; height: 317px;opacity: 0.85;padding: 10px 5px 10px 20px;">

        </div>
        <div id="filtros"  style="text-align: center">
            <button onclick="opcionFiltro(1)" style="width: 230px;">ENTRE FECHAS</button>
            <button onclick="opcionFiltro(2)" style="width: 230px;">ACUMULADOS</button>
            <button onclick="opcionFiltro(3)" style="width: 230px;">POR PERIODOS</button>
            <button onclick="opcionFiltro(4)" style="width: 230px;">POR SALDOS</button>
            <button onclick="opcionFiltro(5)" style="width: 230px;">COMPARATIVO MENSUAL</button>
            <button onclick="opcionFiltro(6)" style="width: 230px;">COMPARATIVO ACUMULADO</button>

        </div>
    </div>
    
    <footer >
            <a href="#" id="Atras"><img src="../img/iconos/imprimir.png" /><br/>
                IMPRIMIR
            </a>
        <a href="#"  onclick="exportarPdf()"><img src="../img/iconos/pdf.png" /><br/>
                EXPORTAR PDF
            </a>
        <a href="#"  onclick="imprimirPdf()"><img src="../img/iconos/excel.png" /><br/>
                EXPORTAR EXCEL
            </a>
    </footer>
     <div id="popUpbackGround"></div>
          <div id="popUpCarga" class="Extragrande"><img src="../img/iconos/ajax-loader.gif" alt=""/> <span style="margin-left: 80px;" class="negrilla" id="msnCargar">Cargando las cuentas espere por favor</span></div>
    <script type="text/javascript">
        var mes = <%out.print(mes);%>;
        var ano = <%out.print(ano);%>;
        var mes2 = <%out.print(mes);%>;
        var ano2 = <%out.print(ano);%>;
        var url="../CON_VISTA_BALANCE_GENERAL_CONTROLLER";
        var estado=0;
        var filtro=1;
        function opcionFiltro(valor){
            switch(valor){
                case 1:
                    $("#año, #mes, #año2, #mes2").css("display","none");
                    $("#datepiker,#datepiker2,#tituloBusqueda").css("display","block");
                    $("#tituloBusqueda").text("FECHA DE:");
                    $("#tituloBusqueda2").text("FECHA HASTA:");
                    filtro=1;
                    break;
                case 2:
                    $("#año, #mes,#datepiker,#datepiker2").css("display","none");
                    $("#tituloBusqueda").css("display","none");
                    $("#año2, #mes2").css("display","inline-block");
                    $("#tituloBusqueda2").text("PERIODO ACUMULADA");
                    filtro=2;
                    break;
                case 3:
                    $("#año, #mes, #año2, #mes2").css("display","inline-block");
                    $("#tituloBusqueda").css("display","block");
                    $("#datepiker,#datepiker2").css("display","none");
                    $("#tituloBusqueda").text("PERIODO DE:");
                    $("#tituloBusqueda2").text("PERIODO HASTA:");
                    filtro=3;

                    break;
                case 4:
                    $("#año, #mes, #año2, #mes2").css("display","inline-block");
                    $("#tituloBusqueda").css("display","block");
                    $("#datepiker,#datepiker2").css("display","none");
                    $("#tituloBusqueda").text("PERIODO DE:");
                    $("#tituloBusqueda2").text("PERIODO HASTA:");
                    filtro=4;

                    break;
                case 5:
                    $("#año, #mes, #año2, #mes2").css("display","inline-block");
                    $("#tituloBusqueda").css("display","block");
                    $("#datepiker,#datepiker2").css("display","none");
                    $("#tituloBusqueda").text("PERIODO DE:");
                    $("#tituloBusqueda2").text("PERIODO HASTA:");
                    filtro=5;

                    break;
                case 6:
                    $("#año, #mes,  #mes2,#tituloBusqueda").css("display","none");
                    $("#tituloBusqueda2").css("display","block");
                    $("#año2").css("display","block");
                    $("#datepiker,#datepiker2").css("display","none");
                    $("#tituloBusqueda2").text("AÑO:");
                    filtro=6;
                    break;
            }
            cargarValores();
        }
        $("#datepiker,#datepiker2").datepicker({ 
                dateFormat: "dd/mm/yy",
                closeText: 'Cerrar',
                prevText: 'Anterior',
                nextText: 'Siguiente',
                firstDay: 1,
                dayNames: [ "Domingo", "Lunes", "Martes", "Miercoles", "Jueves", "Viernes", "Sabado" ],
                dayNamesMin: [ "Do", "Lu", "Ma", "Mi", "Ju", "Vi", "Sa" ],
                monthNames: [ "Enero", "Febrero", "Marzo", "Abril", "Mayo", "Junio", "Julio", "Agosto", "Septiembre", "Octubre", "Noviembre", "Diciembre" ],
                monthNamesShort: [ "Ene", "Feb", "Mar", "Abr", "May", "Jun", "Jul", "Ago", "Sep", "Oct", "Nov", "Dec" ],
                onSelect: function() {   
                    if(typeof($("#nivel option:eq(0)").attr("selected"))!="undefined"){
                        return;
                    }
                    de = $("#datepiker").val();
                    hasta = $("#datepiker2").val();                                  
                    if(de!=""&&hasta!="")
                     {
                        $("#msnCargar").text("Calculando...");
                        $("#popUpCarga").css("display","block");
                        $("#popUpbackGround").css("display","block");
                        $("#tabs2").prepend("<span class='centrado negrillaenter' style='margin-bottom: 15px; font-size: 15px;'>"+de+" - "+hasta+"</span>");
                        $("#nivel option:eq(1)").attr("selected","selected");
                        $("#categoria option:eq(1)").attr("selected","selected");
                        cargarValores();
                    }
                }
            });
        $(document).ready(function(){
            $("#nivel option:eq(1)").attr("selected","selected");
            $("#popUpCarga").css({
                left: ($(window).width() - $('#popUpCarga').outerWidth())/2,
                top: (($(window).height() -  $('#popUpCarga').outerHeight())/2)-20
            });
            $("#año, #mes, #año2, #mes2").css("display","none");
            $("#datepiker,#datepiker2").css("display","block");
            $("#tituloBusqueda").text("FECHA DE:");
            $("#tituloBusqueda2").text("FECHA HASTA:");
            de="01/01/"+ano;
            var date=new Date();
            var dia=date.getDate()+"";
            if((date.getDate()+"").length==1){
                dia="0"+date.getDate();
            }
            $("#datepiker2").val( dia+ "/" + date.getMonth()+1 + "/" + ano);
            $("#datepiker").val(de);
            hasta=dia+ "/" + date.getMonth() + "/" + ano;
            $("#año").val(ano);
            $("#año2").val(ano2);
            $("#mes option[value="+mes+"]").attr("selected","selected");
            $("#mes2 option[value="+mes2+"]").attr("selected","selected");
            $("#de").parent().css({
               top:$("#buscadores").position().top-39, 
               left:($("#buscadores").position().left+$("#buscadores").width())-225
            });
            $("#popUpCarga").css({
                left: ($(window).width() - $('#popUpCarga').outerWidth())/2,
                top: (($(window).height() -  $('#popUpCarga').outerHeight())/2)-20
            });
            versionamiento();
        });
        $("#nivel, #categoria").change(function(){
            if(typeof($("#nivel option:eq(0)").attr("selected"))!="undefined"){
                return;
            }
            $("#msnCargar").text("Calculando...");
            $("#popUpCarga").css("display","block");
            $("#popUpbackGround").css("display","block");
            var nivel=$("#nivel option:selected").val();
            var cat=$("#categoria option:selected").val();
            $.post(url,{proceso:"busquedaNivel",nivel:nivel,categoria:cat},function(responsetext){
                listaEncontrados=$.parseJSON(responsetext);
                $("#tabs2").html(cargarsubmenu("null","cuenta"));
                $("#tabs2").prepend("<span class='centrado negrillaenter' style='margin-bottom: 15px; font-size: 15px;'>"+$("#mes option:selected").text()+" DEL "+$("#año").val()+"</span>");
                listaDom={n1:1,n2:2,n3:3};
                $.each(listaEncontrados,function(i,item){
                    var item2=ListaCuentaContable["c"+item];
                    resultadoReccorrido(item,"","cuenta");
                    $("span#c"+item2.CODIGO).css("background","silver");
                });
                $("#tabs2 ul").each(function(){
                    if($(this).find("li").length==0){
                        $(this).remove();
                    }else{
                        $(this).next().css("display","none");
                    } 
                });
                $("#tabs2  ul.tab2 li:eq(0)").before(tituloC);
                $("#tabs2  ul.tab2:first").append(totalC);
                $("#tabs2  ul.tab2 li:eq(0)").css("width",ancho);
                $("#tabs2  ul.tab2 li:last").css("width",ancho);
                $("#popUpCarga").css("display","none");
                $("#popUpbackGround").css("display","none");
            });
        });
        $("input[name=busqueda]").keyup(function(e){
            if(e.keyCode==13){
                $("#msnCargar").text("Calculando...");
                $("#popUpCarga").css("display","block");
                $("#popUpbackGround").css("display","block");
                var bus=$("input[name=busqueda]").val();
                if(bus.length==0){
                    $("#tabs2").html(cargarsubmenu("null","cuenta"));
                    $("#popUpCarga").css("display","none");
                    $("#popUpbackGround").css("display","none");
                    $("#tabs2  ul.tab2 li:eq(0)").before(tituloC);
                    $("#tabs2  ul.tab2:first").append(totalC);
                    $("#tabs2  ul.tab2 li:eq(0)").css("width",ancho);
                    $("#tabs2  ul.tab2 li:last").css("width",ancho);
                }else{
                    busquedaRapida();
                    $("#tabs2").prepend("<span class='centrado negrillaenter' style='margin-bottom: 15px; font-size: 15px;'> RESULTADO : "+bus+"</span>");
                }
            }
        });
        function ocultarNivel(el){
           var nivel=$("#nivel option:selected").val();
            if($(el).text()=="OCULTAR"){
                $(el).text("MOSTRAR");
                $("#tabs2 span").css("display","none");
                $("#tabs2 span[data-nivel="+nivel+"]").css("display","inline-block");
                $("#tabs2 span[data-nivel="+nivel+"] *").css("display","inline-block");
                $("#tabs2 span:eq(0)").css("display","block");
                $("#to span").css("display","inline-block");
                $("#t span").css("display","inline-block");
           }else{
                $(el).text("OCULTAR");
                $("#tabs2 span").css("display","inline-block");
                $("#tabs2 span:eq(0)").css("display","block");
           }
        }
        function truncarDecimal(decimal){
            decimal=decimal+"";
            if(isNaN(decimal))return 0;
            if(decimal.length==0)return 0;
            resultado=decimal;
            var numero = decimal.split(".");
            if(numero.length==2){
                resultado=numero[0];
                if(numero[1].length>2){
                    var aux = 0;                        
                    var valor =0;
                    for(var i=numero[1].length-1;i>=1;i--){
                        var v = parseFloat(numero[1].charAt(i))+aux;

                        if(i==1){
                            valor = (parseFloat(numero[1].substring(0,2))+aux)+"";
                            if(valor.length==3){
                                return parseFloat(numero[0])+1;
                            }
                            if(valor.length==1){
                                valor="0"+valor;
                            }
                        }
                        aux=v>=5?1:0;
                    } 
                    resultado+="."+valor;
                }else{
                    return parseFloat(decimal);
                }
            }
            return parseFloat(resultado);
        }
        $("#mes, #mes2").change(function(){
            if(typeof($("#nivel option:eq(0)").attr("selected"))!="undefined"){
                return;
            }
            $("#msnCargar").text("Calculando...");
            $("#popUpCarga").css("display","block");
            cargarValores();
            $("#popUpbackGround").css("display","block");
            $("#nivel option:eq(1)").attr("selected","selected");
            $("#categoria option:eq(1)").attr("selected","selected");
            $("#tabs2").prepend("<span class='centrado negrillaenter' style='margin-bottom: 15px; font-size: 15px;'>"+$("#mes option:selected").text()+" DEL "+$("#año").val()+"</span>");
            
        });
        $("#año, #año2").keyup(function(e){
            if($(this).val().length>4){
                return;
            }
            if(e.keyCode==13){
                $("#msnCargar").text("Calculando...");
                $("#popUpCarga").css("display","block");
                $("#popUpbackGround").css("display","block");
                cargarValores();
                $("#nivel option:eq(1)").attr("selected","selected");
                $("#categoria option:eq(1)").attr("selected","selected");
                $("#tabs2").prepend("<span class='centrado negrillaenter' style='margin-bottom: 15px; font-size: 15px;'>"+$("#mes option:selected").text()+" DEL "+$("#año").val()+"</span>");
                
            }
        });
        var de="";
        var hasta="";
        function busquedaRapida(){
            var listaEncontrados=[];
            listaDom={n1:1,n2:2,n3:3};
            var text=$("input[name=busqueda]").val();
            $.each(ListaCuentaContable,function(i,item){
                var cod=item.CODIGO.replace(/\-/g, '');
                if(item.DESCRIPCION.toUpperCase().indexOf(text.toUpperCase())>=0 || item.CODIGO.indexOf(text)>=0 || cod==text){
                    listaEncontrados.push(item);
                }
            });
            $.each(ListaCentroCosto,function(i,item){
                var cod=item.CODIGO.replace(/\-/g, '');
                if(item.DESCRIPCION.toUpperCase().indexOf(text.toUpperCase())>=0 || item.CODIGO.indexOf(text)>=0 || cod==text){
                    listaEncontrados.push(item);
                }
            });
            $("#tabs2").html(cargarsubmenu("null","cuenta"));
            $.each(listaEncontrados,function(i,item){
                resultadoReccorrido(item.CODIGO,"",item.tipo);
                $("span#c"+item.CODIGO).css("background","silver");
            });
            $("#tabs2 ul").each(function(){
                if($(this).find("li").length==0){
                    $(this).remove();
                }else{
                    $(this).next().css("display","none");
                } 
            });
            $("#popUpCarga").css("display","none");
            $("#popUpbackGround").css("display","none");
            $("#tabs2  ul.tab2 li:eq(0)").before(tituloC);
            $("#tabs2  ul.tab2:first").append(totalC);
            $("#tabs2  ul.tab2 li:eq(0)").css("width",ancho);
            $("#tabs2  ul.tab2 li:last").css("width",ancho);
        }
        $(window).resize(function(){
            $("#de").parent().css({
                    top:$("#buscadores").position().top-39, 
                    left:($("#buscadores").position().left+$("#buscadores").width())-225
            });

            if($("#busquedaEstrella").data("estado")==0){
               $("#busquedaEstrella").parent().css({
                  top:$("#buscadores").position().top-149, 
                  left:($("#buscadores").position().left+$("#buscadores").width())-322  
             });
            }else{
                $("#busquedaEstrella").parent().css({
                    left: ($(window).width() - $('#buscadoresEstrella').outerWidth())/2,
                    top: ($(window).height() -  $('#buscadoresEstrella').outerHeight())/2 
                }); 
            }
            $("#popUpCarga").css({
                left: ($(window).width() - $('#popUpCarga').outerWidth())/2,
                top: (($(window).height() -  $('#popUpCarga').outerHeight())/2)-20
            });
        });
        var columnas=1;
        function columnasCero(){
            var str="";
            for (i = 0; i < columnas; i++) {
                str+="<span style='width:120px; text-align:center; display: inline-block'>0.0</span>";
            }
            return str;
        }
        function resultadoReccorrido(codigo,url,cuenta){
            var html="";
            if(cuenta !="cuenta")
            {
                var item=ListaCentroCosto["cc"+codigo];
                var valor=item.valor;
                valor=typeof(item.tiene)=="undefined" && typeof(item.valor) !="undefined"?valor:columnasCero();
                var codigoPadre=codigo.lastIndexOf('-');
                codigoPadre=codigoPadre==-1?codigo.length:codigoPadre;
                if(item.NIVEL=="null"){
                    if($("span#cc"+item.CODIGO).length == 0){
                       return resultadoReccorrido(codigo.substring(0,codigoPadre),"<ul class='tab2'><li style='width:"+ancho+"px'><span  data-estado='1' data-codigo='"+item.CODIGO+"' data-tipo='cuenta' id='cc"+item.CODIGO+"' onclick=\"abrirSubmenu(this,'"+item.id+"','"+item.CODIGO+"')\"><span style='display: inline-block; width: 150px;'>"+item.CODIGO+"</span><span style='display: inline-block;  width: 450px;'>"+item.DESCRIPCION+"</span>"+valor+"</span>"+url+"</li></ul>","cuenta");
                    }else{
                       if($("span#cc"+item.CODIGO).parent().find("ul").length==0){
                            $("span#cc"+item.CODIGO).after("<ul class='tab2'></ul>")
                        }
                        $("span#cc"+item.CODIGO).next().append(url);
                        return false;
                    }
                }else{
                    if($("span#cc"+item.CODIGO).length == 0){
                        return resultadoReccorrido(codigo.substring(0,codigoPadre),"<ul class='tab2'><li style='width:"+ancho+"px'><span  data-estado='1' data-codigo='"+item.CODIGO+"' data-tipo='cc' id='cc"+item.CODIGO+"' onclick=\"abrirSubmenu(this,'"+item.id+"','"+item.CODIGO+"')\"><span style='display: inline-block; width: 150px;'>"+item.CODIGO+"</span><span style='display: inline-block;  width: 450px;'>"+item.DESCRIPCION+"</span>"+valor+"</span>"+url+"</li></ul>",item.tipo);
                    }else{
                        $("span#cc"+item.CODIGO).next().append(url);
                        valorCuentaNivel($("span#cc"+item.CODIGO+"]").next());
                        return false;
                    }
                }
            }
            else
            {
                var item=ListaCuentaContable["c"+codigo];
                var valor;
                try {
                    var valor=typeof(item.tiene)=="undefined" && typeof(item.valor) !="undefined"?item.valor:columnasCero();
                }catch(e){
                    alert("Error en el plan de cuenta en la cuenta "+codigo);
                    return "";
                }
                
                var codigoPadre=codigo.lastIndexOf('-');
                codigoPadre=codigoPadre==-1?codigo.length:codigoPadre;
                if(listaDom["n"+item.CODIGO] == null){
                    listaDom["n"+item.CODIGO]=item.CODIGO;
                    return resultadoReccorrido(codigo.substring(0,codigoPadre),"<li style='width:"+ancho+"px'><span data-codigo='"+item.CODIGO+"' data-nivel='"+item.idnivel+"' data-estado='1' data-tipo='cuenta' id='c"+item.CODIGO+"' onclick=\"abrirSubmenu(this,'"+item.id+"','"+item.CODIGO+"')\"><span style='display: inline-block; width: 150px;'>"+item.CODIGO+"</span><span style='display: inline-block;  width: 450px;'>"+item.DESCRIPCION+"</span>"+valor+"</span>"+"<ul class='tab2'>"+url+"</ul>"+"</li>",item.tipo);
                }else
                {
                    var asd=$("span#c"+item.CODIGO);
                    if(asd.parent().find("ul").length==0 && url.length>0){
                        asd.after("<ul class='tab2'></ul>")
                    }
                    if(url.length>0){
                        var ul=asd.next();
                        ul.append(url);
                    }
                    return false;
                }
            }
            return html;
        }
        function cargarsubmenu(id,tipo2){
            var html="<ul class='tab2'>";
            estado = 0;
            $.each(ListaCentroCosto,function(i,item){
                var valor=item.valor;
                valor=typeof(item.tiene)=="undefined" && typeof(item.valor) !="undefined"?valor:columnasCero();
                if(id!="null" && ("null"==item.NIVEL && id==parseInt(item.IDCUENTA))){
                    html+="<li style='width:"+ancho+"px'><span id='cc"+item.CODIGO+"' data-codigo='"+item.CODIGO+"' data-estado='0' data-tipo='cc' onclick=\"abrirSubmenu(this,'"+item.id+"','"+item.CODIGO+"')\"><span style='display: inline-block; width: 150px;'>"+item.CODIGO+"</span><span style='display: inline-block; width: 450px;'>"+item.DESCRIPCION+"</span>"+valor+"</span></li>";
                    estado=1;
                }
                if( id!="null" && (id==parseInt(item.NIVEL)) && tipo2!= "cuenta" ){
                    html+="<li style='width:"+ancho+"px'><span id='cc"+item.CODIGO+"' data-codigo='"+item.CODIGO+"' data-estado='0' data-tipo='cc' onclick=\"abrirSubmenu(this,'"+item.id+"','"+item.CODIGO+"')\"><span style='display: inline-block; width: 150px;'>"+item.CODIGO+"</span><span style='display: inline-block; width: 450px;'>"+item.DESCRIPCION+"</span>"+valor+"</span></li>";
                    estado=1;
                }                        
            });
            if(estado==0)
            {
                $.each(ListaCuentaContable,function(i,item){
                    var valor=item.valor;
                    valor=typeof(item.tiene)=="undefined" && typeof(item.valor) !="undefined"?valor:columnasCero();
                    if(id==item.NIVEL && tipo2=="cuenta" && item.id!=1866 && item.id!=2804 && item.id!=4433 && item.id!=4483){
                       html+="<li style='width:"+ancho+"px'><span id='c"+item.CODIGO+"' data-estado='0' data-codigo='"+item.CODIGO+"' data-tipo='cuenta' data-nivel='"+item.idnivel+"' onclick=\"abrirSubmenu(this,'"+item.id+"','"+item.CODIGO+"')\"><span style='display: inline-block; width: 150px;'>"+item.CODIGO+"</span><span style='display: inline-block; width: 450px;'>"+item.DESCRIPCION+"</span>"+valor+"</span></li>";
                    }
                });
            }
            html+="</ul>";
            return html;
       }
        function abrirSubmenu(elemento,id,codigo){
            var estado=$(elemento).data("estado");
            if(estado==0){
                if($(elemento).next().find("li").length==0){
                    $(elemento).parent().find("ul").remove();
                    var ul=cargarsubmenu(id,$(elemento).data("tipo"));
                    $(elemento).after(ul);
                }
                else{
                    $(elemento).parent().find(">span").css("display","none");
                    $(elemento).css("display","inline-block");
                    $(elemento).next().slideDown();
                }
                $(elemento).data("estado","1");
            }
            if(estado==1){
                $(elemento).parent().find("span").css("display","inline-block");
                $(elemento).next().slideUp();
                $(elemento).data("estado","0");
            }
            if(estado==3){
                $(elemento).parent().find("ul").remove();
                var ul=cargarsubmenu(id,$(elemento).data("tipo"));
                $(elemento).after(ul);
                $(elemento).data("estado","1");
            }
           $("span").css("background","none");
            if($(elemento).data("tipo")=="cuenta"){
                var item=ListaCuentaContable["c"+codigo];
                $("span#c"+item.CODIGO).css("background","silver");
            }
            else{
                var item=ListaCentroCosto["cc"+codigo];
                $("span#cc"+item.CODIGO).css("background","silver");
            }
        }
        var ListaCuentaContable=[];
        var ListaCentroCosto=[];
        function versionamiento(){
            var versionCuenta=localStorage['versionCuentaCodigo'];
            if(typeof (versionCuenta)=="undefined")
                versionCuenta=-1;
            var versionCentro=localStorage['versionCentroCostoCodigo'];
            if(typeof (versionCentro)=="undefined")
                versionCentro=-1;
            $("#popUpCarga").css("display","block");
            $("#popUpbackGround").css("display","block");
            $.post(url,{proceso:"version"},function(responsetext){
                 var json=$.parseJSON(responsetext);
                 if(json.cuenta!=versionCuenta || json.centro!=versionCentro){
                     cargarCuentas(json.cuenta,json.centro,versionCuenta,versionCentro);
                 }else{
                    ListaCuentaContable = $.parseJSON(localStorage['CuentaContableCodigo']);
                    ListaCentroCosto = $.parseJSON(localStorage['CentroCostoCodigo']);
                    $("#popUpCarga").css("display","none");
                    $("#popUpbackGround").css("display","none");
                    $("#tabs2").prepend("<span class='centrado negrillaenter' style='margin-bottom: 15px; font-size: 15px;'>"+$("#mes option:selected").text()+" DEL "+$("#año").val()+"</span>");
                    $.each(ListaCuentaContable,function(i,item){
                        if(item.idnivel==1 && parseInt(item.CODIGO)<4){
                            $("#categoria").append("<option style='margin-left: 10px;' value='"+item.CODIGO+"'>"+item.DESCRIPCION+"</option>")
                        }
                    });
                    cargarValores();
                 }
            });
        }
        function cargarCuentas(versionCuenta,versionCentro,vcuenta,vcentro){
            ListaCuentaContable = $.parseJSON(localStorage['CuentaContableCodigo']);
            if(ListaCuentaContable==null){
                ListaCuentaContable=[];
            }
            ListaCentroCosto = $.parseJSON(localStorage['CentroCostoCodigo']);
            if(ListaCentroCosto==null){
                ListaCentroCosto=[];
            }
            $.post(url,{proceso:"cargarCuenta",cuenta:vcuenta,centro:vcentro},function(responsetext){
                var json=$.parseJSON(responsetext);
                localStorage['versionCuentaCodigo']=versionCuenta;
                localStorage['versionCentroCostoCodigo']=versionCentro;
                if(vcuenta==-1){
                    if(typeof(ListaCuentaContable)!="undefined")
                    ListaCuentaContable=json.cuenta;
                }else{
                    $.each(json.cuenta, function(){
                        var item=$(this);
                        if(item.CODIGO=="na"){
                            delete ListaCuentaContable["c"+item.CODIGO];
                        }else{
                             ListaCuentaContable["c"+item.CODIGO]={
                                 CODIGO:item.CODIGO,
                                 MONEDA : item.MONEDA,
                                 DESCRIPCION : item.DESCRIPCION,
                                 NIVEL :item.NIVEL,
                                 id :item.id,
                                 idnivel : item.idnivel,
                                 tipo : item.tipo
                             }; 
                         } 
                     });
                }
                localStorage["CuentaContableCodigo"] = JSON.stringify(ListaCuentaContable);
                if(vcentro==-1){
                    if(typeof(ListaCentroCosto)!="undefined")
                    ListaCentroCosto=json.centro;
                }else{
                    $.each(json.centro, function(){
                        var item=$(this)
                        if(item.CODIGO=="na"){
                            delete ListaCentroCosto["c"+item.id];
                        }else{
                             ListaCentroCosto["cc"+item.CODIGO]={
                                CODIGO: item.CODIGO,
                                DESCRIPCION: item.DESCRIPCION,
                                NIVEL: item.NIVEL,
                                id: item.id,
                                IDCUENTA: item.IDCUENTA,
                                tipo: item.tipo
                            };
                         } 
                     });
                }
                localStorage["CentroCostoCodigo"] = JSON.stringify(ListaCentroCosto);
                $("#popUpCarga").css("display","none");
                $("#popUpbackGround").css("display","none");
                $("#tabs2").prepend("<span class='centrado negrillaenter' style='margin-bottom: 15px; font-size: 15px;'>"+$("#mes option:selected").text()+" DEL "+$("#año").val()+"</span>");
                $.each(ListaCuentaContable,function(i,item){
                         if(item.idnivel==1){
                                $("#categoria").append("<option style='margin-left: 10px;' value='"+item.CODIGO+"'>"+item.DESCRIPCION+"</option>")
                         }
                });
                cargarValores();
            });
        }
        var ancho=800;
        var tituloC="";
        var totalC="";
        function cargarValores(){
            ListaCuentaContable = $.parseJSON(localStorage['CuentaContableCodigo']);
            var desde= $("#datepiker").val();
            var hasta= $("#datepiker2").val();
            var año1=$("#año").val();
            var año2=$("#año2").val();
            var mes1=$("#mes option:selected").val();
            var mes2=$("#mes2 option:selected").val();
            var tota="";
            var titul="";
            $.post(url,{proceso:"totalCuenta",desde:desde,tipo:"CON_BALANCE_CUENTAS",tipo2:"CODIGO_CUENTA",hasta:hasta,mes1:mes1,mes2:mes2,año1:año1,año2:año2,filtro:filtro},function(responsetext){
                var json=$.parseJSON(responsetext);
                var relleno="<span style=' width:120px; text-align:center; display: inline-block'>0.0</span>";
                for (var j = 0; j < json.length; j++) {
                    var column=json[j];
                    if(column.VALORES.length>0){
                        for(var i=0;i<column.VALORES.length;i++){
                            var aux="";
                            if(typeof(ListaCuentaContable["c"+column.VALORES[i].CODIGO].valor)=="undefined"){
                                var valor=0;
                                if(typeof(ListaCuentaContable["c"+column.VALORES[i].CODIGO].column)!="undefined"){
                                    valor=ListaCuentaContable["c"+column.VALORES[i].CODIGO].column;
                                }
                                for (var i2 = valor; i2 < j; i2++) {
                                    aux+=relleno;
                                }
                                ListaCuentaContable["c"+column.VALORES[i].CODIGO].column=j+1;
                                ListaCuentaContable["c"+column.VALORES[i].CODIGO].valor=aux+column.VALORES[i].TOTAL;
                            }else{
                                var valor=0;
                                if(typeof(ListaCuentaContable["c"+column.VALORES[i].CODIGO].column)!="undefined"){
                                    valor=ListaCuentaContable["c"+column.VALORES[i].CODIGO].column;
                                }
                                for (var i2 = valor; i2 < j; i2++) {
                                    ListaCuentaContable["c"+column.VALORES[i].CODIGO].valor+=relleno;
                                }
                                ListaCuentaContable["c"+column.VALORES[i].CODIGO].column=j+1;
                                ListaCuentaContable["c"+column.VALORES[i].CODIGO].valor+=column.VALORES[i].TOTAL;
                            }
                        }
                    }else{
                        $.each(ListaCuentaContable,function(i,item){
                            if(typeof(item.valor)=="undefined"){
                                item.valor="<span style='width:120px; text-align:center; display: inline-block'>0.0</span>";
                                item.tiene="1";
                            }else{
                                item.valor+="<span style='width:120px; text-align:center; display: inline-block'>0.0</span>";
                            }
                        });
                    }
                    tota+=column.TOTALFINAL;
                    titul+=column.TITULOS;
                }
                columnas=json.length;
                $("#tabs2").html(cargarsubmenu("null","cuenta"));
                $("#popUpCarga").css("display","none");
                $("#popUpbackGround").css("display","none");
                if($("#t").length>0)
                    $("#t").remove();
                if($("#to").length>0)
                    $("#to").remove();
                $("#tabs2  ul.tab2 li:eq(0)").before("<li id='t' style='height: 25px; font-weight: bold;'><span style=' width:600px; text-align:center; display: inline-block'>CUENTAS</span>"+titul+"</li>");
                $("#tabs2  ul.tab2:first").append("<li class='tab2' id='to' style='height: 25px; border-top:solid; font-weight: bold;'><span style='text-align: right; display: inline-block;  width: 600px;'>TOTAL</span>"+tota+"</li>");
                
                if(parseInt(json.length)-1>0){
                    var aumento=(parseInt(json.length)-1)*120;
                    aumento=800+aumento;
                    ancho=aumento;
                    $(".tab2 li").css("width",+aumento);
                }
                $("#tabs2 ul").each(function(){
                    if($(this).find("li").length!=0){
                        $(this).next().css("display","none");
                    } 
                });
                tituloC="<li id='t' style='height: 25px; font-weight: bold;'><span style=' width:600px; text-align:center; display: inline-block;'>CUENTAS</span>"+titul+"</li>";
                totalC="<li class='tab2' id='to' style='height: 25px; border-top:solid; font-weight: bold;'><span style='text-align: right; display: inline-block;  width: 600px;'>TOTAL</span>"+tota+"</li>";
                cargarValoresCentro();
            });
            function cargarValoresCentro(){
                ListaCentroCosto = $.parseJSON(localStorage['CentroCostoCodigo']);
                $.post(url,{proceso:"totalCuenta",desde:desde,tipo:"CON_BALANCE_CENTROS",tipo2:"CODIGO_CENTRO",hasta:hasta,mes1:mes1,mes2:mes2,año1:año1,año2:año2,filtro:filtro},function(responsetext){
                    var json=$.parseJSON(responsetext);
                    var relleno="<span style=' width:120px; text-align:center; display: inline-block'>0.0</span>";
                    for (var j = 0; j < json.length; j++) {
                        var column=json[j];
                        if(column.VALORES.length>0){
                            for(var i=0;i<column.VALORES.length;i++){
                                if(typeof(ListaCentroCosto["cc"+column.VALORES[i].CODIGO])=="undefined")continue;
                                var aux="";
                               
                                if(typeof(ListaCentroCosto["cc"+column.VALORES[i].CODIGO].valor)=="undefined"){
                                    var valor=0;
                                    if(typeof(ListaCentroCosto["cc"+column.VALORES[i].CODIGO].column)!="undefined"){
                                        valor=ListaCentroCosto["cc"+column.VALORES[i].CODIGO].column;
                                    }
                                    for (var i2 = valor; i2 < j; i2++) {
                                        aux+=relleno;
                                    }
                                    ListaCentroCosto["cc"+column.VALORES[i].CODIGO].column=j+1;
                                    ListaCentroCosto["cc"+column.VALORES[i].CODIGO].valor=aux+column.VALORES[i].TOTAL;
                                }else{
                                    var valor=0;
                                    if(typeof(ListaCentroCosto["cc"+column.VALORES[i].CODIGO].column)!="undefined"){
                                        valor=ListaCentroCosto["cc"+column.VALORES[i].CODIGO].column;
                                    }
                                    for (var i2 = valor; i2 < j; i2++) {
                                        ListaCentroCosto["cc"+column.VALORES[i].CODIGO].valor+=relleno;
                                    }
                                    ListaCentroCosto["cc"+column.VALORES[i].CODIGO].column=j+1;
                                    ListaCentroCosto["cc"+column.VALORES[i].CODIGO].valor+=column.VALORES[i].TOTAL;
                                }
                            }
                    }else{
                        $.each(ListaCentroCosto,function(i,item){
                            if(typeof(item.valor)=="undefined"){
                                item.valor="<span style='width:120px; text-align:center; display: inline-block'>0.0</span>";
                                item.tiene="1";
                            }else{
                                item.valor+="<span style='width:120px; text-align:center; display: inline-block'>0.0</span>";
                            }
                        });
                    }
                    tota+=column.TOTALFINAL;
                    titul+=column.TITULOS;
                }
                });
            }
            
        }
        function exportarPdf(){
            var doc=Pdf();
            doc.save('Reporte de cheques.pdf');
        }
        function imprimirPdf(){
            var doc=Pdf();
            var string = doc.output('datauri');
            var iframe = "<embed src='"+string+"' style=\"width: 900px; height: 600px; margin: 0 auto; display: block;\">";
            var x = window.open();
            x.document.open();
            x.document.write(iframe);
            x.document.close();
        }
        function Pdf(){
            var descripcion="";
            switch(filtro){
               case 1:
                   descripcion="Este balance general fue generado entre las fechas de "+$("#datepiker").val()+" y "+$("#datepiker2").val()
                   break;
               case 2:
                   descripcion="Este balance general fue generado en el periodo acumulado de "+$("#mes2 option:selected").text()+" del "+$("#año2").val();
                   break;
               case 3:
                   descripcion="Este balance general fue generado entre los periodos de "+$("#mes1 option:selected").text()+" del "+$("#año1").val() +" al "+$("#mes2 option:selected").text()+" del "+$("#año2").val();
                   break;
               case 4:
                   descripcion="Este balance general fue generado por saldo entre los periodos de "+$("#mes1 option:selected").text()+" del "+$("#año1").val() +" al "+$("#mes2 option:selected").text()+" del "+$("#año2").val();
                   break;
               case 5:
                   descripcion="Este balance general fue generado en compartivo mensual entre los periodos de "+$("#mes1 option:selected").text()+" del "+$("#año1").val() +" al "+$("#mes2 option:selected").text()+" del "+$("#año2").val();
                   break;
               case 6:
                   descripcion="Este balance general fue generado de la acumulacion de la gestion "+$("#año2").val();
                   break;
            }
            var doc = new jsPDF("l","mm","letter");
            var date = new Date();
            var mes=(date.getMonth()+1)+"";
            mes=mes.length===1?"0"+mes:mes;
            var dia=date.getDate()+"";
            dia=dia.length===1?"0"+dia:dia;
            var año=date.getFullYear();
            var hora=date.getHours()+"";
            hora=hora.length===1?"0"+hora:hora;
            var min=date.getMinutes()+"";
            min=min.length===1?"0"+min:min;
            var seg=date.getSeconds()+"";
            seg=seg===1?"0"+seg:seg;
            var fecha=dia+"/"+mes+"/"+año+" "+hora+":"+min+":"+seg;
           
            doc.text(125,10,"BALANCE GENERAL");
            var aux=17;
            var fila=28;
            var lista=$("#tabs2 li");
            var hoja=1;
            var puntoini=20;
            doc.setFontSize(10);
            doc.text(7,18,descripcion);
            doc.setFontType("bold");
            var columna=2;
            for (i = 0; i < lista.length; i++) {
                var li=$(lista[i]);
                var span=li.find("span");
                var aux=71;
                if(i===0){
                    doc.text(8,24,"CODIGO");
                    doc.text(38,24,"CUENTA");
                    doc.setFontSize(9);
                    for (j = 1; j < span.length; j++) {
                        doc.text(aux,24,$(span[j]).text());
                        aux+=17;
                        columna++;
                    }
                    doc.setFontSize(6.5);
                    doc.line(5,20,70.5+(17*(columna-2)),20);
                    doc.line(5,25,70.5+(17*(columna-2)),25);
                    doc.setFontType("normal");
                    continue;
                }
                if(li.parent().css("display")==="none" ){
                    continue;
                }
                var desc=$(span[2]).text();
                desc=desc.length>28?desc.substring(0,28)+"..":desc;
                var j2=1;
                if(i!==lista.length-1){
                    doc.text(6,fila,$(span[1]).text());
                    doc.text(29,fila,desc);       
                    j2=3;
                }else{
                    doc.setFontType("bold");
                    fila-=2;
                    doc.line(5,fila,70.5+(17*(columna-2)),fila);
                    fila+=2;
                    doc.text(61,fila,"TOTAL");
                    doc.setFontType("normal");
                }
                for (j = j2; j < span.length && j<=columna; j++) {
                    
                    doc.text((aux+13)-$(span[j]).text().length,fila,$(span[j]).text());
                    aux+=17;
                }
                aux=71;
                fila+=3;
                if(fila+4>209){
                    aux=17;
                    doc.line(5,puntoini,5,fila);
                    doc.line(28,puntoini,28,fila);
                    doc.line(70.5,puntoini,70.5,fila);
                    for (j = 1; j < columna-1; j++) {
                        doc.line(70.5+(aux*j),puntoini,70.5+(aux*j),fila);
                    }
                    doc.line(5,fila,70.5+(17*(columna-2)),fila);
                    doc.text(5,212,"Fecha realizada:  "+fecha);
                    doc.text(265,212,"Hoja #"+hoja);
                    puntoini=10;
                    hoja++;
                    fila=12;
                    doc.addPage(); 
                    doc.line(5,10,70.5+(17*(columna-2)),10);
                }
            }
            aux=17;
            fila-=2;
            doc.line(5,puntoini,5,fila);
            doc.line(28,puntoini,28,fila);
            doc.line(70.5,puntoini,70.5,fila);
            for (j = 1; j < columna-1; j++) {
                doc.line(70.5+(aux*j),puntoini,70.5+(aux*j),fila);
            }
            doc.line(5,fila,70.5+(17*(columna-2)),fila);
            doc.text(5,212,"Fecha realizda:  "+fecha);
            doc.text(265,212,"Hoja #"+hoja);
            hoja++;
            fila=10;
            
            return doc;
        }
    </script>
</html>
